#ifndef __KEYFRAME_H__
#define __KEYFRAME_H__
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
#include "Basic Structure.h"
using namespace std;


namespace markerAR
{
    
    class Keyframe
    {
    public:
        Keyframe();
        SingleScaleStructrue feature;
        Keyframe(const Keyframe&) = delete;
        cv::Mat img;
        std::vector<Pose> C;
        std::vector<const Marker*> markers;
        std::vector<Eigen::Matrix3d> Hkm;
        cv::Mat m_smallBlurImage;
        void setSmallBlurImage();
        ~Keyframe()
        {
            C.clear();
            markers.clear();
            Hkm.clear();
            m_smallBlurImage.~Mat();
            img.~Mat();
        }
    private:
        double d_scaleOfsmallBlurImage = 0.1;
    };
    
    
    
    class TrackFrame
    {
    public:
        TrackFrame();
        ~TrackFrame();
        SingleScaleStructrue fast;
        vector<int> markerIdx;
        Pose C;
        Matx33d H;
    private:
        
    };
    
    
}
#endif
